{"ast":null,"code":"import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport raf from \"rc-util/es/raf\";\nimport { useComposeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useEffect, useRef, useState } from 'react';\nimport useOffsets from \"../hooks/useOffsets\";\nimport useRaf, { useRafState } from \"../hooks/useRaf\";\nimport useSyncState from \"../hooks/useSyncState\";\nimport useTouchMove from \"../hooks/useTouchMove\";\nimport useVisibleRange from \"../hooks/useVisibleRange\";\nimport TabContext from \"../TabContext\";\nimport { stringify } from \"../util\";\nimport AddButton from \"./AddButton\";\nimport ExtraContent from \"./ExtraContent\";\nimport OperationNode from \"./OperationNode\";\nimport TabNode from \"./TabNode\";\nvar getSize = function getSize(refObj) {\n  var _ref = refObj.current || {},\n    _ref$offsetWidth = _ref.offsetWidth,\n    offsetWidth = _ref$offsetWidth === void 0 ? 0 : _ref$offsetWidth,\n    _ref$offsetHeight = _ref.offsetHeight,\n    offsetHeight = _ref$offsetHeight === void 0 ? 0 : _ref$offsetHeight;\n  return [offsetWidth, offsetHeight];\n};\n/**\n * Convert `SizeInfo` to unit value. Such as [123, 456] with `top` position get `123`\n */\n\nvar getUnitValue = function getUnitValue(size, tabPositionTopOrBottom) {\n  return size[tabPositionTopOrBottom ? 0 : 1];\n};\nfunction TabNavList(props, ref) {\n  var _classNames;\n  var _React$useContext = React.useContext(TabContext),\n    prefixCls = _React$useContext.prefixCls,\n    tabs = _React$useContext.tabs;\n  var className = props.className,\n    style = props.style,\n    id = props.id,\n    animated = props.animated,\n    activeKey = props.activeKey,\n    rtl = props.rtl,\n    extra = props.extra,\n    editable = props.editable,\n    locale = props.locale,\n    tabPosition = props.tabPosition,\n    tabBarGutter = props.tabBarGutter,\n    children = props.children,\n    onTabClick = props.onTabClick,\n    onTabScroll = props.onTabScroll;\n  var containerRef = useRef();\n  var extraLeftRef = useRef();\n  var extraRightRef = useRef();\n  var tabsWrapperRef = useRef();\n  var tabListRef = useRef();\n  var operationsRef = useRef();\n  var innerAddButtonRef = useRef(); // const [getBtnRef, removeBtnRef] = useRefs<HTMLDivElement>();\n\n  var tabPositionTopOrBottom = tabPosition === 'top' || tabPosition === 'bottom';\n  var _useSyncState = useSyncState(0, function (next, prev) {\n      if (tabPositionTopOrBottom && onTabScroll) {\n        onTabScroll({\n          direction: next > prev ? 'left' : 'right'\n        });\n      }\n    }),\n    _useSyncState2 = _slicedToArray(_useSyncState, 2),\n    transformLeft = _useSyncState2[0],\n    setTransformLeft = _useSyncState2[1];\n  var _useSyncState3 = useSyncState(0, function (next, prev) {\n      if (!tabPositionTopOrBottom && onTabScroll) {\n        onTabScroll({\n          direction: next > prev ? 'top' : 'bottom'\n        });\n      }\n    }),\n    _useSyncState4 = _slicedToArray(_useSyncState3, 2),\n    transformTop = _useSyncState4[0],\n    setTransformTop = _useSyncState4[1];\n  var _useState = useState([0, 0]),\n    _useState2 = _slicedToArray(_useState, 2),\n    containerExcludeExtraSize = _useState2[0],\n    setContainerExcludeExtraSize = _useState2[1];\n  var _useState3 = useState([0, 0]),\n    _useState4 = _slicedToArray(_useState3, 2),\n    tabContentSize = _useState4[0],\n    setTabContentSize = _useState4[1];\n  var _useState5 = useState([0, 0]),\n    _useState6 = _slicedToArray(_useState5, 2),\n    addSize = _useState6[0],\n    setAddSize = _useState6[1];\n  var _useState7 = useState([0, 0]),\n    _useState8 = _slicedToArray(_useState7, 2),\n    operationSize = _useState8[0],\n    setOperationSize = _useState8[1];\n  var _useRafState = useRafState(new Map()),\n    _useRafState2 = _slicedToArray(_useRafState, 2),\n    tabSizes = _useRafState2[0],\n    setTabSizes = _useRafState2[1];\n  var tabOffsets = useOffsets(tabs, tabSizes, tabContentSize[0]); // ========================== Unit =========================\n\n  var containerExcludeExtraSizeValue = getUnitValue(containerExcludeExtraSize, tabPositionTopOrBottom);\n  var tabContentSizeValue = getUnitValue(tabContentSize, tabPositionTopOrBottom);\n  var addSizeValue = getUnitValue(addSize, tabPositionTopOrBottom);\n  var operationSizeValue = getUnitValue(operationSize, tabPositionTopOrBottom);\n  var needScroll = containerExcludeExtraSizeValue < tabContentSizeValue + addSizeValue;\n  var visibleTabContentValue = needScroll ? containerExcludeExtraSizeValue - operationSizeValue : containerExcludeExtraSizeValue - addSizeValue; // ========================== Util =========================\n\n  var operationsHiddenClassName = \"\".concat(prefixCls, \"-nav-operations-hidden\");\n  var transformMin = 0;\n  var transformMax = 0;\n  if (!tabPositionTopOrBottom) {\n    transformMin = Math.min(0, visibleTabContentValue - tabContentSizeValue);\n    transformMax = 0;\n  } else if (rtl) {\n    transformMin = 0;\n    transformMax = Math.max(0, tabContentSizeValue - visibleTabContentValue);\n  } else {\n    transformMin = Math.min(0, visibleTabContentValue - tabContentSizeValue);\n    transformMax = 0;\n  }\n  function alignInRange(value) {\n    if (value < transformMin) {\n      return transformMin;\n    }\n    if (value > transformMax) {\n      return transformMax;\n    }\n    return value;\n  } // ========================= Mobile ========================\n\n  var touchMovingRef = useRef();\n  var _useState9 = useState(),\n    _useState10 = _slicedToArray(_useState9, 2),\n    lockAnimation = _useState10[0],\n    setLockAnimation = _useState10[1];\n  function doLockAnimation() {\n    setLockAnimation(Date.now());\n  }\n  function clearTouchMoving() {\n    window.clearTimeout(touchMovingRef.current);\n  }\n  useTouchMove(tabsWrapperRef, function (offsetX, offsetY) {\n    function doMove(setState, offset) {\n      setState(function (value) {\n        var newValue = alignInRange(value + offset);\n        return newValue;\n      });\n    } // Skip scroll if place is enough\n\n    if (containerExcludeExtraSizeValue >= tabContentSizeValue) {\n      return false;\n    }\n    if (tabPositionTopOrBottom) {\n      doMove(setTransformLeft, offsetX);\n    } else {\n      doMove(setTransformTop, offsetY);\n    }\n    clearTouchMoving();\n    doLockAnimation();\n    return true;\n  });\n  useEffect(function () {\n    clearTouchMoving();\n    if (lockAnimation) {\n      touchMovingRef.current = window.setTimeout(function () {\n        setLockAnimation(0);\n      }, 100);\n    }\n    return clearTouchMoving;\n  }, [lockAnimation]); // ===================== Visible Range =====================\n  // Render tab node & collect tab offset\n\n  var _useVisibleRange = useVisibleRange(tabOffsets,\n    // Container\n    visibleTabContentValue,\n    // Transform\n    tabPositionTopOrBottom ? transformLeft : transformTop,\n    // Tabs\n    tabContentSizeValue,\n    // Add\n    addSizeValue,\n    // Operation\n    operationSizeValue, _objectSpread(_objectSpread({}, props), {}, {\n      tabs: tabs\n    })),\n    _useVisibleRange2 = _slicedToArray(_useVisibleRange, 2),\n    visibleStart = _useVisibleRange2[0],\n    visibleEnd = _useVisibleRange2[1]; // ========================= Scroll ========================\n\n  var scrollToTab = function scrollToTab() {\n    var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : activeKey;\n    var tabOffset = tabOffsets.get(key) || {\n      width: 0,\n      height: 0,\n      left: 0,\n      right: 0,\n      top: 0\n    };\n    if (tabPositionTopOrBottom) {\n      // ============ Align with top & bottom ============\n      var newTransform = transformLeft; // RTL\n\n      if (rtl) {\n        if (tabOffset.right < transformLeft) {\n          newTransform = tabOffset.right;\n        } else if (tabOffset.right + tabOffset.width > transformLeft + visibleTabContentValue) {\n          newTransform = tabOffset.right + tabOffset.width - visibleTabContentValue;\n        }\n      } // LTR\n      else if (tabOffset.left < -transformLeft) {\n        newTransform = -tabOffset.left;\n      } else if (tabOffset.left + tabOffset.width > -transformLeft + visibleTabContentValue) {\n        newTransform = -(tabOffset.left + tabOffset.width - visibleTabContentValue);\n      }\n      setTransformTop(0);\n      setTransformLeft(alignInRange(newTransform));\n    } else {\n      // ============ Align with left & right ============\n      var _newTransform = transformTop;\n      if (tabOffset.top < -transformTop) {\n        _newTransform = -tabOffset.top;\n      } else if (tabOffset.top + tabOffset.height > -transformTop + visibleTabContentValue) {\n        _newTransform = -(tabOffset.top + tabOffset.height - visibleTabContentValue);\n      }\n      setTransformLeft(0);\n      setTransformTop(alignInRange(_newTransform));\n    }\n  }; // ========================== Tab ==========================\n\n  var tabNodeStyle = {};\n  if (tabPosition === 'top' || tabPosition === 'bottom') {\n    tabNodeStyle[rtl ? 'marginRight' : 'marginLeft'] = tabBarGutter;\n  } else {\n    tabNodeStyle.marginTop = tabBarGutter;\n  }\n  var tabNodes = tabs.map(function (tab, i) {\n    var key = tab.key;\n    return /*#__PURE__*/React.createElement(TabNode, {\n      id: id,\n      prefixCls: prefixCls,\n      key: key,\n      tab: tab\n      /* first node should not have margin left */,\n\n      style: i === 0 ? undefined : tabNodeStyle,\n      closable: tab.closable,\n      editable: editable,\n      active: key === activeKey,\n      renderWrapper: children,\n      removeAriaLabel: locale === null || locale === void 0 ? void 0 : locale.removeAriaLabel,\n      onClick: function onClick(e) {\n        onTabClick(key, e);\n      },\n      onFocus: function onFocus() {\n        scrollToTab(key);\n        doLockAnimation();\n        if (!tabsWrapperRef.current) {\n          return;\n        } // Focus element will make scrollLeft change which we should reset back\n\n        if (!rtl) {\n          tabsWrapperRef.current.scrollLeft = 0;\n        }\n        tabsWrapperRef.current.scrollTop = 0;\n      }\n    });\n  }); // Update buttons records\n\n  var updateTabSizes = function updateTabSizes() {\n    return setTabSizes(function () {\n      var newSizes = new Map();\n      tabs.forEach(function (_ref2) {\n        var key = _ref2.key;\n        var btnNode = tabListRef.current.querySelector(\"[data-node-key=\\\"\".concat(key, \"\\\"]\"));\n        if (btnNode) {\n          newSizes.set(key, {\n            width: btnNode.offsetWidth,\n            height: btnNode.offsetHeight,\n            left: btnNode.offsetLeft,\n            top: btnNode.offsetTop\n          });\n        }\n      });\n      return newSizes;\n    });\n  };\n  useEffect(function () {\n    updateTabSizes();\n  }, [tabs.map(function (tab) {\n    return tab.key;\n  }).join('_')]);\n  var onListHolderResize = useRaf(function () {\n    // Update wrapper records\n    var containerSize = getSize(containerRef);\n    var extraLeftSize = getSize(extraLeftRef);\n    var extraRightSize = getSize(extraRightRef);\n    setContainerExcludeExtraSize([containerSize[0] - extraLeftSize[0] - extraRightSize[0], containerSize[1] - extraLeftSize[1] - extraRightSize[1]]);\n    var newAddSize = getSize(innerAddButtonRef);\n    setAddSize(newAddSize);\n    var newOperationSize = getSize(operationsRef);\n    setOperationSize(newOperationSize); // Which includes add button size\n\n    var tabContentFullSize = getSize(tabListRef);\n    setTabContentSize([tabContentFullSize[0] - newAddSize[0], tabContentFullSize[1] - newAddSize[1]]); // Update buttons records\n\n    updateTabSizes();\n  }); // ======================== Dropdown =======================\n\n  var startHiddenTabs = tabs.slice(0, visibleStart);\n  var endHiddenTabs = tabs.slice(visibleEnd + 1);\n  var hiddenTabs = [].concat(_toConsumableArray(startHiddenTabs), _toConsumableArray(endHiddenTabs)); // =================== Link & Operations ===================\n\n  var _useState11 = useState(),\n    _useState12 = _slicedToArray(_useState11, 2),\n    inkStyle = _useState12[0],\n    setInkStyle = _useState12[1];\n  var activeTabOffset = tabOffsets.get(activeKey); // Delay set ink style to avoid remove tab blink\n\n  var inkBarRafRef = useRef();\n  function cleanInkBarRaf() {\n    raf.cancel(inkBarRafRef.current);\n  }\n  useEffect(function () {\n    var newInkStyle = {};\n    if (activeTabOffset) {\n      if (tabPositionTopOrBottom) {\n        if (rtl) {\n          newInkStyle.right = activeTabOffset.right;\n        } else {\n          newInkStyle.left = activeTabOffset.left;\n        }\n        newInkStyle.width = activeTabOffset.width;\n      } else {\n        newInkStyle.top = activeTabOffset.top;\n        newInkStyle.height = activeTabOffset.height;\n      }\n    }\n    cleanInkBarRaf();\n    inkBarRafRef.current = raf(function () {\n      setInkStyle(newInkStyle);\n    });\n    return cleanInkBarRaf;\n  }, [activeTabOffset, tabPositionTopOrBottom, rtl]); // ========================= Effect ========================\n\n  useEffect(function () {\n    scrollToTab(); // eslint-disable-next-line\n  }, [activeKey, stringify(activeTabOffset), stringify(tabOffsets), tabPositionTopOrBottom]); // Should recalculate when rtl changed\n\n  useEffect(function () {\n    onListHolderResize(); // eslint-disable-next-line\n  }, [rtl]); // ========================= Render ========================\n\n  var hasDropdown = !!hiddenTabs.length;\n  var wrapPrefix = \"\".concat(prefixCls, \"-nav-wrap\");\n  var pingLeft;\n  var pingRight;\n  var pingTop;\n  var pingBottom;\n  if (tabPositionTopOrBottom) {\n    if (rtl) {\n      pingRight = transformLeft > 0;\n      pingLeft = transformLeft + containerExcludeExtraSizeValue < tabContentSizeValue;\n    } else {\n      pingLeft = transformLeft < 0;\n      pingRight = -transformLeft + containerExcludeExtraSizeValue < tabContentSizeValue;\n    }\n  } else {\n    pingTop = transformTop < 0;\n    pingBottom = -transformTop + containerExcludeExtraSizeValue < tabContentSizeValue;\n  }\n  return /*#__PURE__*/React.createElement(ResizeObserver, {\n    onResize: onListHolderResize\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    ref: useComposeRef(ref, containerRef),\n    role: \"tablist\",\n    className: classNames(\"\".concat(prefixCls, \"-nav\"), className),\n    style: style,\n    onKeyDown: function onKeyDown() {\n      // No need animation when use keyboard\n      doLockAnimation();\n    }\n  }, /*#__PURE__*/React.createElement(ExtraContent, {\n    ref: extraLeftRef,\n    position: \"left\",\n    extra: extra,\n    prefixCls: prefixCls\n  }), /*#__PURE__*/React.createElement(\"div\", {\n    className: classNames(wrapPrefix, (_classNames = {}, _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-left\"), pingLeft), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-right\"), pingRight), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-top\"), pingTop), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-bottom\"), pingBottom), _classNames)),\n    ref: tabsWrapperRef\n  }, /*#__PURE__*/React.createElement(ResizeObserver, {\n    onResize: onListHolderResize\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    ref: tabListRef,\n    className: \"\".concat(prefixCls, \"-nav-list\"),\n    style: {\n      transform: \"translate(\".concat(transformLeft, \"px, \").concat(transformTop, \"px)\"),\n      transition: lockAnimation ? 'none' : undefined\n    }\n  }, tabNodes, /*#__PURE__*/React.createElement(AddButton, {\n    ref: innerAddButtonRef,\n    prefixCls: prefixCls,\n    locale: locale,\n    editable: editable,\n    style: _objectSpread(_objectSpread({}, tabNodes.length === 0 ? undefined : tabNodeStyle), {}, {\n      visibility: hasDropdown ? 'hidden' : null\n    })\n  }), /*#__PURE__*/React.createElement(\"div\", {\n    className: classNames(\"\".concat(prefixCls, \"-ink-bar\"), _defineProperty({}, \"\".concat(prefixCls, \"-ink-bar-animated\"), animated.inkBar)),\n    style: inkStyle\n  })))), /*#__PURE__*/React.createElement(OperationNode, _extends({}, props, {\n    removeAriaLabel: locale === null || locale === void 0 ? void 0 : locale.removeAriaLabel,\n    ref: operationsRef,\n    prefixCls: prefixCls,\n    tabs: hiddenTabs,\n    className: !hasDropdown && operationsHiddenClassName,\n    tabMoving: !!lockAnimation\n  })), /*#__PURE__*/React.createElement(ExtraContent, {\n    ref: extraRightRef,\n    position: \"right\",\n    extra: extra,\n    prefixCls: prefixCls\n  })));\n  /* eslint-enable */\n}\n\nexport default /*#__PURE__*/React.forwardRef(TabNavList);","map":{"version":3,"names":["_extends","_defineProperty","_toConsumableArray","_objectSpread","_slicedToArray","classNames","ResizeObserver","raf","useComposeRef","React","useEffect","useRef","useState","useOffsets","useRaf","useRafState","useSyncState","useTouchMove","useVisibleRange","TabContext","stringify","AddButton","ExtraContent","OperationNode","TabNode","getSize","refObj","_ref","current","_ref$offsetWidth","offsetWidth","_ref$offsetHeight","offsetHeight","getUnitValue","size","tabPositionTopOrBottom","TabNavList","props","ref","_classNames","_React$useContext","useContext","prefixCls","tabs","className","style","id","animated","activeKey","rtl","extra","editable","locale","tabPosition","tabBarGutter","children","onTabClick","onTabScroll","containerRef","extraLeftRef","extraRightRef","tabsWrapperRef","tabListRef","operationsRef","innerAddButtonRef","_useSyncState","next","prev","direction","_useSyncState2","transformLeft","setTransformLeft","_useSyncState3","_useSyncState4","transformTop","setTransformTop","_useState","_useState2","containerExcludeExtraSize","setContainerExcludeExtraSize","_useState3","_useState4","tabContentSize","setTabContentSize","_useState5","_useState6","addSize","setAddSize","_useState7","_useState8","operationSize","setOperationSize","_useRafState","Map","_useRafState2","tabSizes","setTabSizes","tabOffsets","containerExcludeExtraSizeValue","tabContentSizeValue","addSizeValue","operationSizeValue","needScroll","visibleTabContentValue","operationsHiddenClassName","concat","transformMin","transformMax","Math","min","max","alignInRange","value","touchMovingRef","_useState9","_useState10","lockAnimation","setLockAnimation","doLockAnimation","Date","now","clearTouchMoving","window","clearTimeout","offsetX","offsetY","doMove","setState","offset","newValue","setTimeout","_useVisibleRange","_useVisibleRange2","visibleStart","visibleEnd","scrollToTab","key","arguments","length","undefined","tabOffset","get","width","height","left","right","top","newTransform","_newTransform","tabNodeStyle","marginTop","tabNodes","map","tab","i","createElement","closable","active","renderWrapper","removeAriaLabel","onClick","e","onFocus","scrollLeft","scrollTop","updateTabSizes","newSizes","forEach","_ref2","btnNode","querySelector","set","offsetLeft","offsetTop","join","onListHolderResize","containerSize","extraLeftSize","extraRightSize","newAddSize","newOperationSize","tabContentFullSize","startHiddenTabs","slice","endHiddenTabs","hiddenTabs","_useState11","_useState12","inkStyle","setInkStyle","activeTabOffset","inkBarRafRef","cleanInkBarRaf","cancel","newInkStyle","hasDropdown","wrapPrefix","pingLeft","pingRight","pingTop","pingBottom","onResize","role","onKeyDown","position","transform","transition","visibility","inkBar","tabMoving","forwardRef"],"sources":["/data/messenger.client/node_modules/rc-tabs/es/TabNavList/index.js"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport raf from \"rc-util/es/raf\";\nimport { useComposeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useEffect, useRef, useState } from 'react';\nimport useOffsets from \"../hooks/useOffsets\";\nimport useRaf, { useRafState } from \"../hooks/useRaf\";\nimport useSyncState from \"../hooks/useSyncState\";\nimport useTouchMove from \"../hooks/useTouchMove\";\nimport useVisibleRange from \"../hooks/useVisibleRange\";\nimport TabContext from \"../TabContext\";\nimport { stringify } from \"../util\";\nimport AddButton from \"./AddButton\";\nimport ExtraContent from \"./ExtraContent\";\nimport OperationNode from \"./OperationNode\";\nimport TabNode from \"./TabNode\";\n\nvar getSize = function getSize(refObj) {\n  var _ref = refObj.current || {},\n      _ref$offsetWidth = _ref.offsetWidth,\n      offsetWidth = _ref$offsetWidth === void 0 ? 0 : _ref$offsetWidth,\n      _ref$offsetHeight = _ref.offsetHeight,\n      offsetHeight = _ref$offsetHeight === void 0 ? 0 : _ref$offsetHeight;\n\n  return [offsetWidth, offsetHeight];\n};\n/**\n * Convert `SizeInfo` to unit value. Such as [123, 456] with `top` position get `123`\n */\n\n\nvar getUnitValue = function getUnitValue(size, tabPositionTopOrBottom) {\n  return size[tabPositionTopOrBottom ? 0 : 1];\n};\n\nfunction TabNavList(props, ref) {\n  var _classNames;\n\n  var _React$useContext = React.useContext(TabContext),\n      prefixCls = _React$useContext.prefixCls,\n      tabs = _React$useContext.tabs;\n\n  var className = props.className,\n      style = props.style,\n      id = props.id,\n      animated = props.animated,\n      activeKey = props.activeKey,\n      rtl = props.rtl,\n      extra = props.extra,\n      editable = props.editable,\n      locale = props.locale,\n      tabPosition = props.tabPosition,\n      tabBarGutter = props.tabBarGutter,\n      children = props.children,\n      onTabClick = props.onTabClick,\n      onTabScroll = props.onTabScroll;\n  var containerRef = useRef();\n  var extraLeftRef = useRef();\n  var extraRightRef = useRef();\n  var tabsWrapperRef = useRef();\n  var tabListRef = useRef();\n  var operationsRef = useRef();\n  var innerAddButtonRef = useRef(); // const [getBtnRef, removeBtnRef] = useRefs<HTMLDivElement>();\n\n  var tabPositionTopOrBottom = tabPosition === 'top' || tabPosition === 'bottom';\n\n  var _useSyncState = useSyncState(0, function (next, prev) {\n    if (tabPositionTopOrBottom && onTabScroll) {\n      onTabScroll({\n        direction: next > prev ? 'left' : 'right'\n      });\n    }\n  }),\n      _useSyncState2 = _slicedToArray(_useSyncState, 2),\n      transformLeft = _useSyncState2[0],\n      setTransformLeft = _useSyncState2[1];\n\n  var _useSyncState3 = useSyncState(0, function (next, prev) {\n    if (!tabPositionTopOrBottom && onTabScroll) {\n      onTabScroll({\n        direction: next > prev ? 'top' : 'bottom'\n      });\n    }\n  }),\n      _useSyncState4 = _slicedToArray(_useSyncState3, 2),\n      transformTop = _useSyncState4[0],\n      setTransformTop = _useSyncState4[1];\n\n  var _useState = useState([0, 0]),\n      _useState2 = _slicedToArray(_useState, 2),\n      containerExcludeExtraSize = _useState2[0],\n      setContainerExcludeExtraSize = _useState2[1];\n\n  var _useState3 = useState([0, 0]),\n      _useState4 = _slicedToArray(_useState3, 2),\n      tabContentSize = _useState4[0],\n      setTabContentSize = _useState4[1];\n\n  var _useState5 = useState([0, 0]),\n      _useState6 = _slicedToArray(_useState5, 2),\n      addSize = _useState6[0],\n      setAddSize = _useState6[1];\n\n  var _useState7 = useState([0, 0]),\n      _useState8 = _slicedToArray(_useState7, 2),\n      operationSize = _useState8[0],\n      setOperationSize = _useState8[1];\n\n  var _useRafState = useRafState(new Map()),\n      _useRafState2 = _slicedToArray(_useRafState, 2),\n      tabSizes = _useRafState2[0],\n      setTabSizes = _useRafState2[1];\n\n  var tabOffsets = useOffsets(tabs, tabSizes, tabContentSize[0]); // ========================== Unit =========================\n\n  var containerExcludeExtraSizeValue = getUnitValue(containerExcludeExtraSize, tabPositionTopOrBottom);\n  var tabContentSizeValue = getUnitValue(tabContentSize, tabPositionTopOrBottom);\n  var addSizeValue = getUnitValue(addSize, tabPositionTopOrBottom);\n  var operationSizeValue = getUnitValue(operationSize, tabPositionTopOrBottom);\n  var needScroll = containerExcludeExtraSizeValue < tabContentSizeValue + addSizeValue;\n  var visibleTabContentValue = needScroll ? containerExcludeExtraSizeValue - operationSizeValue : containerExcludeExtraSizeValue - addSizeValue; // ========================== Util =========================\n\n  var operationsHiddenClassName = \"\".concat(prefixCls, \"-nav-operations-hidden\");\n  var transformMin = 0;\n  var transformMax = 0;\n\n  if (!tabPositionTopOrBottom) {\n    transformMin = Math.min(0, visibleTabContentValue - tabContentSizeValue);\n    transformMax = 0;\n  } else if (rtl) {\n    transformMin = 0;\n    transformMax = Math.max(0, tabContentSizeValue - visibleTabContentValue);\n  } else {\n    transformMin = Math.min(0, visibleTabContentValue - tabContentSizeValue);\n    transformMax = 0;\n  }\n\n  function alignInRange(value) {\n    if (value < transformMin) {\n      return transformMin;\n    }\n\n    if (value > transformMax) {\n      return transformMax;\n    }\n\n    return value;\n  } // ========================= Mobile ========================\n\n\n  var touchMovingRef = useRef();\n\n  var _useState9 = useState(),\n      _useState10 = _slicedToArray(_useState9, 2),\n      lockAnimation = _useState10[0],\n      setLockAnimation = _useState10[1];\n\n  function doLockAnimation() {\n    setLockAnimation(Date.now());\n  }\n\n  function clearTouchMoving() {\n    window.clearTimeout(touchMovingRef.current);\n  }\n\n  useTouchMove(tabsWrapperRef, function (offsetX, offsetY) {\n    function doMove(setState, offset) {\n      setState(function (value) {\n        var newValue = alignInRange(value + offset);\n        return newValue;\n      });\n    } // Skip scroll if place is enough\n\n\n    if (containerExcludeExtraSizeValue >= tabContentSizeValue) {\n      return false;\n    }\n\n    if (tabPositionTopOrBottom) {\n      doMove(setTransformLeft, offsetX);\n    } else {\n      doMove(setTransformTop, offsetY);\n    }\n\n    clearTouchMoving();\n    doLockAnimation();\n    return true;\n  });\n  useEffect(function () {\n    clearTouchMoving();\n\n    if (lockAnimation) {\n      touchMovingRef.current = window.setTimeout(function () {\n        setLockAnimation(0);\n      }, 100);\n    }\n\n    return clearTouchMoving;\n  }, [lockAnimation]); // ===================== Visible Range =====================\n  // Render tab node & collect tab offset\n\n  var _useVisibleRange = useVisibleRange(tabOffsets, // Container\n  visibleTabContentValue, // Transform\n  tabPositionTopOrBottom ? transformLeft : transformTop, // Tabs\n  tabContentSizeValue, // Add\n  addSizeValue, // Operation\n  operationSizeValue, _objectSpread(_objectSpread({}, props), {}, {\n    tabs: tabs\n  })),\n      _useVisibleRange2 = _slicedToArray(_useVisibleRange, 2),\n      visibleStart = _useVisibleRange2[0],\n      visibleEnd = _useVisibleRange2[1]; // ========================= Scroll ========================\n\n\n  var scrollToTab = function scrollToTab() {\n    var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : activeKey;\n    var tabOffset = tabOffsets.get(key) || {\n      width: 0,\n      height: 0,\n      left: 0,\n      right: 0,\n      top: 0\n    };\n\n    if (tabPositionTopOrBottom) {\n      // ============ Align with top & bottom ============\n      var newTransform = transformLeft; // RTL\n\n      if (rtl) {\n        if (tabOffset.right < transformLeft) {\n          newTransform = tabOffset.right;\n        } else if (tabOffset.right + tabOffset.width > transformLeft + visibleTabContentValue) {\n          newTransform = tabOffset.right + tabOffset.width - visibleTabContentValue;\n        }\n      } // LTR\n      else if (tabOffset.left < -transformLeft) {\n        newTransform = -tabOffset.left;\n      } else if (tabOffset.left + tabOffset.width > -transformLeft + visibleTabContentValue) {\n        newTransform = -(tabOffset.left + tabOffset.width - visibleTabContentValue);\n      }\n\n      setTransformTop(0);\n      setTransformLeft(alignInRange(newTransform));\n    } else {\n      // ============ Align with left & right ============\n      var _newTransform = transformTop;\n\n      if (tabOffset.top < -transformTop) {\n        _newTransform = -tabOffset.top;\n      } else if (tabOffset.top + tabOffset.height > -transformTop + visibleTabContentValue) {\n        _newTransform = -(tabOffset.top + tabOffset.height - visibleTabContentValue);\n      }\n\n      setTransformLeft(0);\n      setTransformTop(alignInRange(_newTransform));\n    }\n  }; // ========================== Tab ==========================\n\n\n  var tabNodeStyle = {};\n\n  if (tabPosition === 'top' || tabPosition === 'bottom') {\n    tabNodeStyle[rtl ? 'marginRight' : 'marginLeft'] = tabBarGutter;\n  } else {\n    tabNodeStyle.marginTop = tabBarGutter;\n  }\n\n  var tabNodes = tabs.map(function (tab, i) {\n    var key = tab.key;\n    return /*#__PURE__*/React.createElement(TabNode, {\n      id: id,\n      prefixCls: prefixCls,\n      key: key,\n      tab: tab\n      /* first node should not have margin left */\n      ,\n      style: i === 0 ? undefined : tabNodeStyle,\n      closable: tab.closable,\n      editable: editable,\n      active: key === activeKey,\n      renderWrapper: children,\n      removeAriaLabel: locale === null || locale === void 0 ? void 0 : locale.removeAriaLabel,\n      onClick: function onClick(e) {\n        onTabClick(key, e);\n      },\n      onFocus: function onFocus() {\n        scrollToTab(key);\n        doLockAnimation();\n\n        if (!tabsWrapperRef.current) {\n          return;\n        } // Focus element will make scrollLeft change which we should reset back\n\n\n        if (!rtl) {\n          tabsWrapperRef.current.scrollLeft = 0;\n        }\n\n        tabsWrapperRef.current.scrollTop = 0;\n      }\n    });\n  }); // Update buttons records\n\n  var updateTabSizes = function updateTabSizes() {\n    return setTabSizes(function () {\n      var newSizes = new Map();\n      tabs.forEach(function (_ref2) {\n        var key = _ref2.key;\n        var btnNode = tabListRef.current.querySelector(\"[data-node-key=\\\"\".concat(key, \"\\\"]\"));\n\n        if (btnNode) {\n          newSizes.set(key, {\n            width: btnNode.offsetWidth,\n            height: btnNode.offsetHeight,\n            left: btnNode.offsetLeft,\n            top: btnNode.offsetTop\n          });\n        }\n      });\n      return newSizes;\n    });\n  };\n\n  useEffect(function () {\n    updateTabSizes();\n  }, [tabs.map(function (tab) {\n    return tab.key;\n  }).join('_')]);\n  var onListHolderResize = useRaf(function () {\n    // Update wrapper records\n    var containerSize = getSize(containerRef);\n    var extraLeftSize = getSize(extraLeftRef);\n    var extraRightSize = getSize(extraRightRef);\n    setContainerExcludeExtraSize([containerSize[0] - extraLeftSize[0] - extraRightSize[0], containerSize[1] - extraLeftSize[1] - extraRightSize[1]]);\n    var newAddSize = getSize(innerAddButtonRef);\n    setAddSize(newAddSize);\n    var newOperationSize = getSize(operationsRef);\n    setOperationSize(newOperationSize); // Which includes add button size\n\n    var tabContentFullSize = getSize(tabListRef);\n    setTabContentSize([tabContentFullSize[0] - newAddSize[0], tabContentFullSize[1] - newAddSize[1]]); // Update buttons records\n\n    updateTabSizes();\n  }); // ======================== Dropdown =======================\n\n  var startHiddenTabs = tabs.slice(0, visibleStart);\n  var endHiddenTabs = tabs.slice(visibleEnd + 1);\n  var hiddenTabs = [].concat(_toConsumableArray(startHiddenTabs), _toConsumableArray(endHiddenTabs)); // =================== Link & Operations ===================\n\n  var _useState11 = useState(),\n      _useState12 = _slicedToArray(_useState11, 2),\n      inkStyle = _useState12[0],\n      setInkStyle = _useState12[1];\n\n  var activeTabOffset = tabOffsets.get(activeKey); // Delay set ink style to avoid remove tab blink\n\n  var inkBarRafRef = useRef();\n\n  function cleanInkBarRaf() {\n    raf.cancel(inkBarRafRef.current);\n  }\n\n  useEffect(function () {\n    var newInkStyle = {};\n\n    if (activeTabOffset) {\n      if (tabPositionTopOrBottom) {\n        if (rtl) {\n          newInkStyle.right = activeTabOffset.right;\n        } else {\n          newInkStyle.left = activeTabOffset.left;\n        }\n\n        newInkStyle.width = activeTabOffset.width;\n      } else {\n        newInkStyle.top = activeTabOffset.top;\n        newInkStyle.height = activeTabOffset.height;\n      }\n    }\n\n    cleanInkBarRaf();\n    inkBarRafRef.current = raf(function () {\n      setInkStyle(newInkStyle);\n    });\n    return cleanInkBarRaf;\n  }, [activeTabOffset, tabPositionTopOrBottom, rtl]); // ========================= Effect ========================\n\n  useEffect(function () {\n    scrollToTab(); // eslint-disable-next-line\n  }, [activeKey, stringify(activeTabOffset), stringify(tabOffsets), tabPositionTopOrBottom]); // Should recalculate when rtl changed\n\n  useEffect(function () {\n    onListHolderResize(); // eslint-disable-next-line\n  }, [rtl]); // ========================= Render ========================\n\n  var hasDropdown = !!hiddenTabs.length;\n  var wrapPrefix = \"\".concat(prefixCls, \"-nav-wrap\");\n  var pingLeft;\n  var pingRight;\n  var pingTop;\n  var pingBottom;\n\n  if (tabPositionTopOrBottom) {\n    if (rtl) {\n      pingRight = transformLeft > 0;\n      pingLeft = transformLeft + containerExcludeExtraSizeValue < tabContentSizeValue;\n    } else {\n      pingLeft = transformLeft < 0;\n      pingRight = -transformLeft + containerExcludeExtraSizeValue < tabContentSizeValue;\n    }\n  } else {\n    pingTop = transformTop < 0;\n    pingBottom = -transformTop + containerExcludeExtraSizeValue < tabContentSizeValue;\n  }\n\n  return /*#__PURE__*/React.createElement(ResizeObserver, {\n    onResize: onListHolderResize\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    ref: useComposeRef(ref, containerRef),\n    role: \"tablist\",\n    className: classNames(\"\".concat(prefixCls, \"-nav\"), className),\n    style: style,\n    onKeyDown: function onKeyDown() {\n      // No need animation when use keyboard\n      doLockAnimation();\n    }\n  }, /*#__PURE__*/React.createElement(ExtraContent, {\n    ref: extraLeftRef,\n    position: \"left\",\n    extra: extra,\n    prefixCls: prefixCls\n  }), /*#__PURE__*/React.createElement(\"div\", {\n    className: classNames(wrapPrefix, (_classNames = {}, _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-left\"), pingLeft), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-right\"), pingRight), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-top\"), pingTop), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-bottom\"), pingBottom), _classNames)),\n    ref: tabsWrapperRef\n  }, /*#__PURE__*/React.createElement(ResizeObserver, {\n    onResize: onListHolderResize\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    ref: tabListRef,\n    className: \"\".concat(prefixCls, \"-nav-list\"),\n    style: {\n      transform: \"translate(\".concat(transformLeft, \"px, \").concat(transformTop, \"px)\"),\n      transition: lockAnimation ? 'none' : undefined\n    }\n  }, tabNodes, /*#__PURE__*/React.createElement(AddButton, {\n    ref: innerAddButtonRef,\n    prefixCls: prefixCls,\n    locale: locale,\n    editable: editable,\n    style: _objectSpread(_objectSpread({}, tabNodes.length === 0 ? undefined : tabNodeStyle), {}, {\n      visibility: hasDropdown ? 'hidden' : null\n    })\n  }), /*#__PURE__*/React.createElement(\"div\", {\n    className: classNames(\"\".concat(prefixCls, \"-ink-bar\"), _defineProperty({}, \"\".concat(prefixCls, \"-ink-bar-animated\"), animated.inkBar)),\n    style: inkStyle\n  })))), /*#__PURE__*/React.createElement(OperationNode, _extends({}, props, {\n    removeAriaLabel: locale === null || locale === void 0 ? void 0 : locale.removeAriaLabel,\n    ref: operationsRef,\n    prefixCls: prefixCls,\n    tabs: hiddenTabs,\n    className: !hasDropdown && operationsHiddenClassName,\n    tabMoving: !!lockAnimation\n  })), /*#__PURE__*/React.createElement(ExtraContent, {\n    ref: extraRightRef,\n    position: \"right\",\n    extra: extra,\n    prefixCls: prefixCls\n  })));\n  /* eslint-enable */\n}\n\nexport default /*#__PURE__*/React.forwardRef(TabNavList);"],"mappings":"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"},"metadata":{},"sourceType":"module"}